package javango.contrib.i18n;

import java.util.IllegalFormatException;
import java.util.Map;

import com.google.inject.ImplementedBy;

/**
 * Actually provides the translation.
 * 
 * @author john
 *
 */
@ImplementedBy(AbstractI18NProvider.class)
public interface I18NProvider {

	String getText(String format, Map<String, Object> args) throws IllegalFormatException;
	String getText(String format, Object argBean) throws IllegalFormatException;
	String getText(String format, Object... args) throws IllegalFormatException;
	String getText(String format) throws IllegalFormatException;
	
	I18NString getLazy(String format, Map<String, Object> args) throws IllegalFormatException;
	I18NString getLazy(String format, Object argBean) throws IllegalFormatException;
	I18NString getLazy(String format, Object... args) throws IllegalFormatException;
	I18NString getLazy(String format) throws IllegalFormatException;
}
